package com.example.netcomponent.net.utils;

import android.content.Context;
import android.content.SharedPreferences;


import com.example.netcomponent.net.AppConstant;

import java.util.HashSet;

/**
 * Created by zengxianghui900 on 17/8/27.
 */

public class SpUtils {

    public static SharedPreferences newInstance(Context context){
        return context.getSharedPreferences(AppConstant.SpKey.APP_SP, Context.MODE_PRIVATE);
    }
    /**
     * 存储String类型 sp值
     * @param context
     * @param key
     * @param value
     */
    public static void putStringValue(Context context, String key , String value){
        SpUtils.newInstance(context).edit().putString(key,value).apply();
    }

    /**
     * 获取String类型sp值
     * @param context
     * @param key
     * @return
     */
    public static String getStringValue(Context context, String key){
        return SpUtils.newInstance(context).getString(key,"");
    }


    /**
     * 存储int类型 sp值
     * @param context
     * @param key
     * @param value
     */
    public static void putIntValue(Context context, String key , int value){
        SpUtils.newInstance(context).edit().putInt(key,value).apply();
    }

    /**
     * 获取int类型sp值
     * @param context
     * @param key
     * @return
     */
    public static int getIntValue(Context context, String key){
        return SpUtils.newInstance(context).getInt(key,0);
    }

    /**
     * 存储hashSet值
     * @param context
     * @param key
     * @param set
     */
    public static void putSetValue(Context context, String key, HashSet<String> set){
        SpUtils.newInstance(context).edit().putStringSet(key,set).apply();
    }

    /**
     * 获取hashSet值
     * @param context
     * @param key
     * @return
     */
    public static HashSet<String> getSetValue(Context context, String key){
        return (HashSet<String>) SpUtils.newInstance(context).getStringSet(key,new HashSet<String>());
    }

    /**
     * 存储boolean值
     * @param context
     * @param key
     * @param value
     */
    public static void putBooleanValue(Context context, String key,boolean value) {
        SpUtils.newInstance(context).edit().putBoolean(key,value).apply();
    }

    /**
     * 获取boolean类型sp值
     * @param context
     * @param key
     * @return
     */
    public static Boolean getBooleanValue(Context context, String key){
        return SpUtils.newInstance(context).getBoolean(key,false);
    }


}
